#include<stdio.h>
void print(char*arr)
{
    int count = 0;
    while(count<18)//打印18位
    {
        printf("%c",*arr);
        arr++;
        count++;
    }
    printf("\n");
}
char Thecp(int z)//返回计算值所对的校验码
{
    if(z==0)
    {
        return '1';
    }
    if(z==1)
    {
        return '0';
    }
    if(z==2)
    {
        return 'X';
    }
    if(z==3)
    {
        return '9';
    }
    if(z==4)
    {
        return '8';
    }
    if(z==5)
    {
        return '7';
    }
    if(z==6)
    {
        return '6';
    }
    if(z==7)
    {
        return '5';
    }
    if(z==8)
    {
        return '4';
    }
    if(z==9)
    {
        return '3';
    }
    if(z==10)
    {
        return '2';
    }
    return -1;//不写这个会报错可能没有返回值
}
int main()
{
    int num = 0;
    scanf("%d",&num);
    getchar();//拿掉输入num最后的\n
    int i = 0;
    char insfz [2000];
    for(i=0;i<num;i++)//拿取num个身份证
    {
        int j = i*18;//保证拿下一个身份证时跳过18位
        for(j=i*18;j<i*18+18;j++)
        {
            scanf("%c",&insfz[j]);
        }
        getchar();//拿掉每次输入身份证时最后的\n
    }
    int count = 0;//为下面确认是否存在一个及以上错误
    for(i=0;i<num;i++)
    {
        //先判断前17位是不是都是数字
        int j = i*18;
        int only = 0;//确保判断前17位有不是数字的位时不进行正常判断
        for(j=i*18;j<i*18+17;j++)
        {
            int flag = 1;//假设为一（假设有字母）
            int k = 0;
            for(k=0;k<=9;k++)
            {
                if((insfz[j]-'0')==k)//判断该字符是否0-9其中一个
                {
                    flag = 0;//判断成功一次即为数字
                }
            }
            if(flag)//不是数字才执行，即身份证有错，该打印
            {
                print(&insfz[i*18]);//因为这个循环里判断身份证每个数时j++了，所以用i*18来保证地址是身份证第一位
                count++;//不是全对了
                only = 1;
                break;
            }
        }
        if(only==1)
        {
            continue;//已打印出来，要跳过正常判断防止二次打印
        }
        //正常判断
        j = i*18;//上面循环把j用过一轮了，重置一下
        //下面是计算公式->//
        int sum = (insfz[j]-'0')*7+(insfz[j+1]-'0')*9+(insfz[j+2]-'0')*10+(insfz[j+3]-'0')*5+(insfz[j+4]-'0')*8+(insfz[j+5]-'0')*4+(insfz[j+6]-'0')*2+(insfz[j+7]-'0')+(insfz[j+8]-'0')*6+(insfz[j+9]-'0')*3+(insfz[j+10]-'0')*7+(insfz[j+11]-'0')*9+(insfz[j+12]-'0')*10+(insfz[j+13]-'0')*5+(insfz[j+14]-'0')*8+(insfz[j+15]-'0')*4+(insfz[j+16]-'0')*2;
        int z = sum%11;
        char m = Thecp(z);//<-
        if(insfz[j+17]==m)//判断最后一位的校验码是否正确
        {
            continue;
        }
        else
        {
            print(&insfz[j]);
            count++;//不是全对了
        }
    }
    if(count==0)
    {
        printf("All passed");
    }
    return 0;
}